package com.java.yz.day04.ketang;
/*
    数组一旦被创建，它的长度是没办法改变的，相当于一个容器

    对于同一个数组而言，其存储的数据类型是一样的。数组既可以存储基本数据类型，又可以存储引用数据类型

    定义一个数组
        1. 数组类型[] 数组名;    //推荐使用第一种写法，第一种简单明了，
                              // 定义了一维数组，也明确了元素的数据类型

        2. 数据类型  数组名[];   这种是早一批的程序员写的，可读性比较差

        无论局部变量是基本数据类型还是引用数据类型，在使用之前，都要进行初始化
        数组的初始化代表啥意思呢？ 代表的就是在内存中为数组开辟空间，划分区域

        静态初始化：先对每一个位置进行复制，然后有JVM来推断数组的大小
        动态初始化：手动输入数组最大元素的个数，在对每个位置上的元素进行一一赋值
 */
/*
    动态初始化：
        定义格式：
            数据类型[] 数组名 = new 数据类型[数组的大小];
            int[] arr1=new int[3];
            当不赋值时，系统会默认赋给它一个值
 */
public class ArrayDemo1 {
    public static void main(String[] args) {
        //定义一个int类型的数组
        /**
         * 以赋值语句“=”化成两部分
         *
         * 左部分
         * int 定义的类型
         * [] 一维数组
         * arr1 数组名
         *
         * 右部分
         * new 凡事看到new，就是在堆内存中开辟空间
         * 3 数组中最大存储的元素
         */
        //通过索引来获取数组里的值
        int[] arr1=new int[3];
        System.out.println(arr1);   //打印出来他的16进制的地址值[I@4eec7777
        System.out.println(arr1[0]);  //0
        System.out.println(arr1[1]);  //0
        System.out.println(arr1[2]);  //0
    }
}
